package com.ynet.middleground.contract.bean;

import java.util.List;
import java.util.Map;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author daigaole
 * @description 修改合约请求
 * @date 2020-03-18
 */
@Data
@ApiModel(value = "修改合约请求", description = "修改合约请求")
public class ModifyContractReq extends EnterpriseBaseReqObj {

    private static final long serialVersionUID = -5830887679408752507L;

    @ApiModelProperty(value = "业态公司 id \n（仅综合管理平台使用）", notes = "业态公司 id \n（仅综合管理平台使用）", dataType = "Integer")
    private Integer formatId;

    /**
     * 合约id
     */
    @ApiModelProperty(value = "合约id", notes = "合约id", required = true, dataType = "Integer")
    @NotNull(message = "合约id不能为空")
    private Integer contractId;

    /**
     * 描述备注
     */
    @ApiModelProperty(value = "描述备注", notes = "描述备注", dataType = "String")
    private String description;

    /**
     * 合约名称
     */
    @ApiModelProperty(value = "合约名称", notes = "合约名称", dataType = "String")
    private String contractName;

    // /**
    // * 业务主体ID
    // */
    // @ApiModelProperty(value = "业务主体ID", notes = "业务主体ID", dataType = "String")
    // private String subjectId;
    //
    // /**
    // * 业务主体名称
    // */
    // @ApiModelProperty(value = "业务主体名称", notes = "业务主体名称", dataType = "String")
    // private String subjectName;

    /**
     * 签署方Id
     */
    @ApiModelProperty(value = "签署方Id（若有多个，以英文逗号隔开）", notes = "签署方Id（若有多个，以英文逗号隔开）", dataType = "String")
    private String signatoryId;

    /**
     * 签署方名称
     */
    @ApiModelProperty(value = "签署方名称（若有多个，以英文逗号隔开）", notes = "签署方名称（若有多个，以英文逗号隔开）", dataType = "String")
    private String signatoryName;

    /**
     * 独有参数
     */
    @ApiModelProperty(value = "模板渲染参数，根据模版参数规则上送\n\n" + "如需要单元格合并，在对应的表格内容添加合并标记：\n"
        + "    垂直合并，在内容后添加：#m.tag.row#   如：1500#m.tag.row#\n    水平合并，在内容前添加：#m.tag.col#   如：#m.tag.col#1000\n\n注意：同一个单元格内容仅可选择一种合并方式，垂直合并、水平合并无法同时使用",
        notes = "", dataType = "java.util.Map")
    private Map parameter;

    /**
     * 表格合并单元格参数
     */
    @Valid
    @ApiModelProperty(value = "表格合并单元格参数", notes = "表格合并单元格参数")
    private List<MergeCellTableInfo> tableMergeCells;

    /**
     * 非制式合约内容（oss地址）
     */
    @ApiModelProperty(value = "非制式合约字段，非制式合约文件地址，如果修改非制式合约内容时必填\n短路径地址(包含 Bucket) \n  如：zhongtai/file.pdf",
        notes = "非制式合约字段，非制式合约文件地址，如果修改非制式合约内容时必填\n短路径地址(包含 Bucket) \n  如：zhongtai/file.pdf", dataType = "String")
    private String nonStandardContractOss;

    /**
     * 非制式二维码key
     */
    @ApiModelProperty(value = "非制式合约字段，非制式二维码key，如果修改非制式合约内容时必填", notes = "非制式合约字段，非制式二维码key，如果修改非制式合约内容时必填",
        dataType = "String")
    private String codeQrKey;

    /**
     * 非制式合约编号占位符key
     */
    @ApiModelProperty(value = "非制式合约字段，非制式合约编号占位符key，如果修改非制式合约内容时必填", notes = "非制式合约字段，非制式合约编号占位符key，如果修改非制式合约内容时必填",
        dataType = "String")
    private String placeholderKey;
}
